package mall;
import org.junit.Test;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @author jj
 * @date 2019/11/21 9:42
 */
public class sunfa {
    public static void main(String[] args) {
        List <Integer> list=new ArrayList<>();
        list.add(0);
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        Map<Integer, Integer> map = new HashMap<> ();
        map.put(0,0);
        map.put(1,1);
        map.put(2,2);
        map.put(3,3);
        map.put(4,4);
        map.put(5,5);
        map.put(6,6);
        Map<Integer, Integer> map1 = new HashMap<> ();
        map1.put(0,30);
        map1.put(1,40);
        map1.put(2,30);
        map1.put(3,10);
        map1.put(4,10);
        map1.put(5,10);
        map1.put(6,80);
        Map<Integer, Integer> betMoeny = map1;
        Map<Integer, Integer> betMoeny1 = new HashMap<> (map1);
        bgm:for (int i = list.size()-1; i >=0 ; i--){
            Integer index = map.get(list.get(i));
            Integer money = betMoeny.get(index);
            t2:for (int j=0;j<list.size();j++){
                Integer index1 = map.get(list.get(j));
                Integer money1 = betMoeny.get(index1);
                if(money1==0){
                    continue;
                }
                System.out.println(index1+":::::::::::::::XX"+money1);
                System.out.println(index+":::::::::::::::xX"+money);
                if (index.equals(index1)){
                    break bgm;
                }
                if (money1-money>=0){
                    Integer money3=money1-money;
                    betMoeny.put(index,money*2);
                    betMoeny.put(index1,money3);
                    break ;
                }else {
                    Integer sum = betMoeny1.get(index)*2;
                    for (int m =j ; m < list.size();m++){
                        Integer money4 = betMoeny.get(index);
                        if (money4==sum){
                            break t2;
                        }
                        Integer index2 = map.get(list.get(m));
                        Integer money2 = betMoeny.get(index2);
                        if (money4+money2>sum){
                            Integer money3= sum-money4;
                            betMoeny.put(index,sum);
                            betMoeny.put(index2,money3);
                        }else {
                            Integer money3=money4+money2;
                            betMoeny.put(index,money3);
                            betMoeny.put(index2,0);
                        }
                    }
                }

            }

        }
        System.out.println(betMoeny);
    }

    @Test
    public void test() {
        Map<Integer, Integer> map1 = new HashMap<> ();
        map1.put(0,-50);
        map1.put(1,-40);
        map1.put(2,30);
        map1.put(3,10);
        map1.put(4,10);
        map1.put(5,10);
        map1.put(6,10);
        IntSummaryStatistics intSummaryStatistics = map1.values().stream().mapToInt((s) -> s).summaryStatistics();
        System.out.println(intSummaryStatistics);
    }

    @Test
    public void test1() {
       Date date=new Date();
        String str = "yyy-MM-dd HH:mm:ss";
        SimpleDateFormat sdf = new SimpleDateFormat(str);

        System.out.println( sdf.format(date));
    }
}
